home *** CD-ROM | disk | FTP | other *** search
/ Aminet 21 / Aminet 21 (1997)(GTI - Schatztruhe)[!][Oct 1997].iso / Aminet / util / misc / gpatch.lha / GPatch / GPatch.doc < prev    next >
Text File  |  1997-07-05  |  5KB  |  134 lines

  1.  
  2. GCompare / GPatch 1.6
  3. ---------------------
  4.  
  5. Author: Ralf Gruner, An der Sense 5a, D-02779 Großschönau, Germany
  6.         ralf.gruner@t-online.de
  7.  
  8.  
  9. GCompare generates patch files for the distribution of updates for any files.
  10. GPatch applies these patches.
  11.  
  12. I know that there are already exist patch generators for Amiga. But I am
  13. not owner of SAS C (I would be, if SAS would continue to sell it),
  14. and the freeware version I found in Aminet crashes my machine.
  15. So I have written a new patcher.
  16.  
  17. The features are:
  18. ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
  19. -The patch file can contain patches for any number of files.
  20.  So you can distribute the update for a lot of versions in one file.
  21.  If the directory structure of your product is unchanged, then the patcher
  22.  will find the required patches without any additional actions of your update
  23.  script.
  24.  And you can put the patches for different files of your product in one
  25.  patch file.
  26.  
  27. -The format of the patchfile is very high optimized. I do not know too many
  28.  similar programs, but I think in the most cases it is the shortest available.
  29.  
  30. -To avoid corrupt files, the programs contain a very safe error checking
  31.  (CRC32 signatures for all files). So you can be sure that the result of the
  32.  patch process is perfect if no error messages appear.
  33.  
  34. Usage:
  35. ¯¯¯¯¯¯
  36. GCompare and GPatch are shell commands.
  37.  
  38. Syntax:
  39.  
  40.  GCompare <old file> <new file> <patch file>
  41.  
  42.  GPatch <old file> <patch file> <new file>
  43.  
  44. If GCompare finds an existing <patch file>, then it appends the patches.
  45.  
  46. GPatch selects the matching patches by file size and CRC signature.
  47.  
  48. If the output contains no error messages, then the actions were successful.
  49. Any fatal error produces a return code greater than 9.
  50.  
  51. GCompare needs enough free memory for old file, new file and the patch file.
  52. If GCompare can allocate enough memory (10 times the filesize of the old
  53. file), then it uses a fast search algorithm (lists), else it will use linear
  54. search.
  55.  
  56. As GCompare example I have included scripts for a fictive program.
  57. The old versions of this program "MyProgram" are in "Archive". The patches
  58. for the program and a manual "MyProgram.readme" will be applied on the
  59. distribution disk "MyProgram".
  60.  
  61. Discussion:
  62. ¯¯¯¯¯¯¯¯¯¯¯
  63. I have got some mail about the speed and the size of the resulting patch
  64. file.
  65. Some of you found the patch file size much shorter than of other patchers,
  66. some of you not, and all want a faster patch program.
  67.  
  68. I am working currently on a new file format. With the most of my tests
  69. I have got shorter patch files (approximately 15%). But you should know
  70. that it is impossible to get always the shortest result, because the file
  71. size depends on the distance of the matching data and the way to address
  72. it.
  73. The next release of GPatch will have three possible formats and an optimizer,
  74. but this new version needs a lot of work yet, and so I have released this
  75. bugfix. 
  76.  
  77. There is really no chance to make GCompare much faster. GCompare searches
  78. matching data in the entire old file (and not only in a relative area like
  79. other patch programs). The next release will get a quick mode, but this
  80. can not produce the best results.
  81.  
  82.  
  83. Distribution:
  84. ¯¯¯¯¯¯¯¯¯¯¯¯¯
  85. GCompare and GPatch are freeware programs. You can use it for all your needs
  86. without restrictions. Also use for commercial products is free.
  87.  
  88. If you want to see future updates of the programs, please send me an email
  89. that you use the programs. There are some things to optimize, but if nobody
  90. need them I can do other things.
  91. Any comments are welcome.
  92.  
  93.  
  94. Ralf
  95.  
  96. -----------------
  97.  
  98. Disclaimer
  99. ¯¯¯¯¯¯¯¯¯¯
  100. THIS PROGRAM IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER
  101. EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTY
  102. OF FITNESS FOR A PARTICULAR PURPOSE.  THOUGH EVERY CARE HAS BEEN TAKEN TO
  103. MAKE THIS PROGRAM SYSTEM-FRIENDLY AND BUGS-FREE, THE ENTIRE RISK AS TO THE
  104. RESULTS, RELIABILITY AND PERFORMANCE OF THIS PROGRAM IS ASSUMED BY YOU.
  105.  
  106. -----------------
  107.  
  108. History:
  109. ¯¯¯¯¯¯¯¯
  110. 19.04.97: GCompare 1.0 / GPatch 1.0
  111. Inital release.
  112.  
  113. 21.04.97: GCompare 1.1 / GPatch 1.1
  114. Bugfix. Better examples.
  115.  
  116. 26.04.97: GCompare 1.2 / GPatch 1.2
  117. Speed improvements.
  118.  
  119. 01.05.97: GCompare 1.3 / GPatch 1.3
  120. Bugfix (GPatch failed on the most files greater than 64KB).
  121.  
  122. 11.05.97: GCompare 1.4 / GPatch 1.4
  123. GCompare uses a faster search algorithm.
  124.  
  125. 01.06.97: GCompare 1.5 / GPatch 1.5
  126. New file format (shorter patch files).
  127. Some small changes.
  128.  
  129. 05.07.97: GCompare 1.6 / GPatch 1.6
  130. Bugfix: Possible counter overflow with large data blocks
  131. (no matching data in 16383 bytes).
  132. Nobody reports it as yet - seems to be improbable.
  133.  
  134.